import { AxiosResponse } from "axios";
import { post } from "./request";
import { IChangePassword } from "../types/changePasswordType";
import { IUserData } from "../types/userDataType";

/**
 * Объект с сервисами для изменения данных пользователя.
 */
const userServices = {
    /**
     * @async
     * @function setAvatar - Функция для установки аватара.
     * @param { FormData } body - Данные формы для отправки. 
     * @returns { Promise<IUserData> } - Промис с данными пользователя.  
     */
    setAvatar: async (body: FormData): Promise<IUserData> => {
        
        const response = await post('/api/system/user/avatar', body, {
            headers: {
                'Content-Type': 'multipart/form-data'
            }
        });
        return response.data;
    },
    /**
     * @async
     * @function changePassword - Функция для изменения пароля пользователя.
     * @param { IChangePassword } body - Данные для изменения пароля.
     * @returns { Promise<AxiosResponse<any, any>> } - Промис с данными ответа.
     */
    changePassword: async (body: IChangePassword): Promise<AxiosResponse<any, any>> => {
        const response = await post('api/system/user/change_password', body);
        return response.data;
    }
};

export default userServices;